package com.cnswhy.cloud.server.core.dto;

import java.time.LocalDateTime;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;
import lombok.Data;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.cnswhy.cloud.server.common.entity.enumeration.ConfigKey;
import java.io.Serializable;

/**
 * <p>
 * 实体类
 * 系统配置表
 * </p>
 *
 * @author cnswhy
 * @since 2020-10-16
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Builder
@ApiModel(value = "SysConfigPageDTO", description = "系统配置表")
public class SysConfigPageDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 配置类型 #ConfigKey{file_ftp_ip:fTP文件IP;}
     */
    @ApiModelProperty(value = "配置类型 #ConfigKey{file_ftp_ip:fTP文件IP;}")
    private String configKey;
    /**
     * 配置名称
     */
    @ApiModelProperty(value = "配置名称")
    @Length(max = 200, message = "配置名称长度不能超过200")
    private String configName;
    /**
     * 配置VALUE
     */
    @ApiModelProperty(value = "配置VALUE")
    @Length(max = 2000, message = "配置VALUE长度不能超过2000")
    private String configValue;
    /**
     * 类型（1：系统参数配置，2：业务URL配置，3：接口路径配置）
     */
    @ApiModelProperty(value = "类型（1：系统参数配置，2：业务URL配置，3：接口路径配置）")
    @Length(max = 1, message = "类型（1：系统参数配置，2：业务URL配置，3：接口路径配置）长度不能超过1")
    private String type;
    /**
     * 校验规则，正则表达式
     */
    @ApiModelProperty(value = "校验规则，正则表达式")
    @Length(max = 2000, message = "校验规则，正则表达式长度不能超过2000")
    private String validateRules;
    /**
     * 配置规则描述
     */
    @ApiModelProperty(value = "配置规则描述")
    @Length(max = 2000, message = "配置规则描述长度不能超过2000")
    private String configRules;
    /**
     * 配置分组
     */
    @ApiModelProperty(value = "配置分组")
    @Length(max = 200, message = "配置分组长度不能超过200")
    private String configGroup;
    /**
     * 是否显示 0-隐藏 1-显示
     */
    @ApiModelProperty(value = "是否显示 0-隐藏 1-显示")
    @Length(max = 1, message = "是否显示 0-隐藏 1-显示长度不能超过1")
    private String displayStatus;

}
